home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Applications 2004 May / SGI IRIX 6.5 Applications 2004 May.iso / relnotes / SCSL / ch5.z / ch5
Encoding:
Text File  |  2004-04-07  |  7.0 KB  |  265 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        5.  _C_o_n_v_e_r_t_i_n_g__F_F_T__r_o_u_t_i_n_e_s__f_r_o_m__C_H_A_L_L_E_N_G_E_c_o_m_p_l_i_b__t_o__S_C_S_L
  9.  
  10.  
  11.        The FFT interfaces have changed between complib.sgimath and
  12.        scsl.  Here is the mapping for the user to port from
  13.        complib.sgimath to the new scsl interfaces.
  14.  
  15.        For FFT initialization routines:
  16.  
  17.           Complib         SCSL
  18.           ********        *********
  19.           cfft1di    -->  CCFFT (set isign = 0)
  20.           zfft1di    -->  ZZFFT (set isign = 0)
  21.           scfft1dui  -->  SCFFT (set isign = 0)
  22.           dzfft1dui  -->  DZFFT (set isign = 0)
  23.  
  24.           cfftm1di   -->  CCFFTM (set isign = 0)
  25.           zfftm1di   -->  ZZFFTM (set isign = 0)
  26.           scfftm1dui -->  SCFFTM (set isign = 0)
  27.           dzfftm1dui -->  DZFFTM (set isign = 0)
  28.  
  29.           cfft2di    -->  CCFFT2D (set isign = 0)
  30.           zfft2di    -->  ZZFFT2D (set isign = 0)
  31.           scfft2dui  -->  SCFFT2D (set isign = 0)
  32.           dzfft2dui  -->  DZFFT2D (set isign = 0)
  33.  
  34.           cfft3di    -->  CCFFT3D (set isign = 0)
  35.           zfft3di    -->  ZZFFT3D (set isign = 0)
  36.           scfft3dui  -->  SCFFT3D (set isign = 0)
  37.           dzfft3dui  -->  DZFFT3D (set isign = 0)
  38.  
  39.        The integer parameter isys may be set to either 0 or 1.
  40.        isys=1 is the preferred value, but it does require you to
  41.        allocate additional space for the table array compared to
  42.        what was allocated for the coeff array in complib.sgimath.
  43.        If you need to keep the FFT table array the same size as was
  44.        used with the complib.sgimath FFT routines, use isys=0.
  45.        Note, though, that additional space will be allocated during
  46.        the initialization. When the table array is no longer
  47.        needed, the extra space should be released usin g one of the
  48.        following "FFT free" routines:
  49.  
  50.  
  51.           Initialization        Free Routine
  52.           **************        ************
  53.           CCFFT (isign = 0)     CCFFTF
  54.           ZZFFT (isign = 0)     ZZFFTF
  55.           SCFFT (isign = 0)     SCFFTF
  56.           DZFFT (isign = 0)     DZFFTF
  57.  
  58.           CCFFTM (isign = 0)    CCFFTMF
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.           ZZFFTM (isign = 0)    ZZFFTMF
  75.           SCFFTM (isign = 0)    SCFFTMF
  76.           DZFFTM (isign = 0)    DZFFTMF
  77.  
  78.           CCFFT2D (isign = 0)   CCFFT2DF
  79.           ZZFFT2D (isign = 0)   ZZFFT2DF
  80.           SCFFT2D (isign = 0)   SCFFT2DF
  81.           DZFFT2D (isign = 0)   DZFFT2DF
  82.  
  83.           CCFFT3D (isign = 0)   CCFFT3DF
  84.           ZZFFT3D (isign = 0)   ZZFFT3DF
  85.           SCFFT3D (isign = 0)   SCFFT3DF
  86.           DZFFT3D (isign = 0)   DZFFT3DF
  87.  
  88.  
  89.  
  90.        For the FFT routines:
  91.  
  92.           Complib         SCSL
  93.           ********        *********
  94.           cfft1d    -->   CCFFT
  95.           zfft1d    -->   ZZFFT
  96.           scfft1du  -->   SCFFT
  97.           dzfft1dui -->   DZFFT
  98.           csfft1du  -->   CSFFT
  99.           zdfft1dui -->   ZDFFT
  100.  
  101.           cfftm1di   -->  CCFFTM
  102.           zfftm1di   -->  ZZFFTM
  103.           scfftm1dui -->  SCFFTM
  104.           dzfftm1dui -->  DZFFTM
  105.           csfftm1dui -->  CSFFTM
  106.           zdfftm1dui -->  ZDFFTM
  107.  
  108.           cfft2d    -->   CCFFT2D
  109.           zfft2d    -->   ZZFFT2D
  110.           scfft2du  -->   SCFFT2D
  111.           dzfft2du  -->   DZFFT2D
  112.           csfft2du  -->   CSFFT2D
  113.           zdfft2du  -->   ZDFFT2D
  114.  
  115.           cfft3d    -->   CCFFT3D
  116.           zfft3d    -->   ZZFFT3D
  117.           scfft3du  -->   SCFFT3D
  118.           dzfft3du  -->   DZFFT3D
  119.           csfft3du  -->   CSFFT3D
  120.           zdfft3du  -->   ZDFFT3D
  121.  
  122.        And here is a mapping of the parameters from the FFT
  123.        interfaces in complib.sgimath to the new FFT interfaces in
  124.        scsl.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.        1 D ROUTINES (CC/ZZ, SC/DZ, CS/ZD FFT)
  141.        **************************************
  142.  
  143.        Complib: cfft1d( sign, n, array, inc, coeff )
  144.        SCSL   : ccfft (isign, n, scale, x, y, table, work, isys)
  145.  
  146.           Complib   SCSL arguments
  147.           *******   **************
  148.           sign  ->  isign
  149.           n     ->  n
  150.           array ->  x,y
  151.           inc   ->  ignore if 1 (else you need to gather/scatter your data)
  152.           coeff ->  table
  153.  
  154.           user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
  155.           user needs to provide a workspace (see man page for correct size)
  156.           user needs to set isys to integer one or zero
  157.  
  158.        1 D Multiple Routines (CC/ZZ, SC/DZ, CS/ZD FFTM)
  159.        ************************************************
  160.  
  161.        Complib: cfftm1d( sign, n, p, array, inc, lda, coef )
  162.        SCSL   : ccfftm (isign, n, lot, scale, x, ldx, y, ldy, table, work, isys)
  163.        SCSL   : ccfftmr(isign, n, lot, scale, x, ldx, y, ldy, table, work, isys)
  164.  
  165.           Complib   SCSL arguments
  166.           *******   **************
  167.           sign  ->  isign
  168.           n     ->  n
  169.           p     ->  lot
  170.           array ->  x,y
  171.           inc   ->  ignore if 1 (else you need to gather/scatter your data)
  172.           lda   ->  ldx,ldy
  173.                     (if SCFFTM or DZFFTM, ldy = lda/2)
  174.                     (if CSFFTM or ZDFFTM, ldy = 2*lda)
  175.           coef  ->  table
  176.  
  177.           user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
  178.           user needs to provide a workspace (see man page for correct size)
  179.           user needs to set isys to integer one or zero
  180.  
  181.        2 D Routines (CC/ZZ, SC/DZ, CS/ZD FFT2D)
  182.        ****************************************
  183.  
  184.        Complib: cfft2d  ( sign, n1, n2, array, lda, coef )
  185.        SCSL   : ccfft2d (isign, n1, n2, scale, x, ldx, y, ldy, table, work, isys)
  186.  
  187.           Complib   SCSL arguments
  188.           *******   **************
  189.           sign  ->  isign
  190.           n1    ->  n1
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.           n2    ->  n2
  207.           array ->  x,y
  208.           lda   ->  ldx,ldy
  209.                     (if SCFFT2 or DZFFT2, ldy = lda/2)
  210.                     (if CSFFT2 or ZDFFT2, ldy = 2*lda)
  211.           coef  ->  table
  212.  
  213.           user needs to set scale to 1.0E0 (or 1.0D0 is ZZ,DZ,or ZD)
  214.           user needs to provide a workspace (see man page for correct size)
  215.           user needs to set isys to integer one or zero
  216.  
  217.        3 D Routines (CC/ZZ, SC/DZ, CS/ZD FFT3D)
  218.        ****************************************
  219.  
  220.        Complib: cfft3d  ( sign, n1, n2, n3, array, la1, la2, coef )
  221.        SCSL   : ccfft3d (isign, n1, n2, n3, scale, x, ldx, ldx2,
  222.                          y, ldy, ldy2, table, work, isys)
  223.  
  224.  
  225.           Complib   SCSL arguments
  226.           *******   **************
  227.           sign  ->  isign
  228.           n1    ->  n1
  229.           n2    ->  n2
  230.           n3    ->  n3
  231.           array ->  x,y
  232.           la1   ->  ldx,ldy
  233.                     (if SCFFT3 or DZFFT3, ldy = la1/2)
  234.                     (if CSFFT3 or ZDFFT3, ldy = 2*la1)
  235.           la2   ->  ldx2,ldy2
  236.           coef  ->  table
  237.  
  238.          user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
  239.          user needs to provide a workspace (see man page for correct size)
  240.          user needs to set isys to integer one or zero
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.